package com.qm.console.service.anchor;

import com.alibaba.fastjson.JSONArray;
import com.qm.console.controller.dto.BaseDO;
import com.qm.console.controller.dto.BaseRsp;
import com.qm.console.dao.model.*;
import com.qm.console.pubdef.dto.analysis.AnchorAnalysisDTO;
import com.qm.console.pubdef.dto.anchor.*;
import com.qm.console.pubdef.dto.user.PageInfoDTO;

import java.util.List;
import java.util.Map;

public interface AnchorService {
    BaseDO<PageInfoDTO<LiveVerificationDOWithBLOBs>> listAnchorVerifyAdmin(Map<String, String> paramMap);
    BaseDO<PageInfoDTO<AvatarAuditDO>> listAnchorAvatarAdmin(Map<String, String> paramMap);
    BaseRsp updateAnchorVerifyAdmin(AnchorVerifyAdminDTO updateDTO);
    BaseRsp getAnchorStatistic(AnchorAnalysisDTO updateDTO);
    BaseRsp updateAnchorAvatarAdmin(AnchorVerifyAvatarAdminDTO updateDTO);
    BaseDO listAnchorPhotoVerifyAdmin(Map<String,String> paramMap);
    BaseRsp updateAnchorPhotoVerifyAdmin(AnchorVerifyPhotoAdminDTO updateDTO);
    BaseDO listAnchorVideoVerifyAdmin(Map<String,String> paramMap);
    BaseRsp updateAnchorVideoVerifyAdmin(AnchorVerifyVideoAdminDTO updateDTO);
    BaseDO listAnchorCoverImageAdmin(Map<String,String> paramMap);
    BaseRsp updateAnchorCoverVerifyAdmin(AnchorVerifyCoverImageDTO updateDTO);
    List<VideoRecordDO> listVideoThumb(VideoRecordQueryDTO queryDTO);
    int countVideoThumb(VideoRecordQueryDTO queryDTO);
    List<ScreenShotsDO> listVideoThumbAll(ScreenShotQueryDTO queryDTO);
    int countVideoThumbAll(ScreenShotQueryDTO queryDTO);
    List<Integer> listVideoThumbUser(ScreenShotQueryDTO queryDTO);
    void deleteVideoThumb(String channelId);
    void removeDeletedVideoThumb();
    void verifyChat(List<String> chatIds);
    void verifyUserChat(String userId);
    BaseRsp listIMMsgs(ImMsgQueryDTO queryDTO);
    BaseRsp sessionMsg(ImMsgQueryDTO queryDTO);
    BaseRsp reversionRate(ImMsgQueryDTO queryDTO);
    void verifyIMMsg(ImMsgUpdateDTO id);
    void deleteIMMsg(ImMsgUpdateDTO id);

    // 存储官方动态修改记录
    BaseRsp saveDynamicState(DynamicStateDTO updateDTO);

    // 真人认证审核数据保存
    void saveLiveAuditRecord(LiveVerificationDOWithBLOBs record);
    // 真人认证已审核记录查询
    BaseDO<PageInfoDTO<LiveVerificationDOWithBLOBs>> listLiveAuditRecord(Map<String, String> paramMap);

    // 头像审核数据保存
    void saveAvatarAuditRecord(List<AvatarAuditDO> records);
    // 头像已审核记录查询
    BaseDO<PageInfoDTO<AvatarAuditInfoDTO>> listAvatarAuditRecord(Map<String, String> paramMap);

    // 形象墙审核记录保存
    void saveAuditRecord(JSONArray list);
    // 形象墙已审核记录查询
    BaseDO listPhotosAuditRecord(Map<String, String> paramMap);

    // 视频审核数据保存
    void saveVideoAuditRecord(List<VideoAuditDO> records);
    // 视频已审核记录查询
    BaseDO listVideoAuditRecord(Map<String, String> paramMap);

    // 封面审核数据保存
    void saveBackgroundAuditRecord(List<BackgroundAuditDO> records);
    // 封面已审核记录查询
    BaseDO listBackgroundAuditRecord(Map<String, String> paramMap);

    // 主播审核列表查询
    BaseRsp listGoddess(Map<String, String> paramMap);
    // 已审核主播列表查询
    BaseRsp listGoddessRecord(Map<String, String> paramMap);
    // 审核主播认证
    BaseRsp updateGoddess(GoddessDTO goddessDTO);
    // 主播认证记录保存
    void saveGoddessRecord(GoddessAuditDOWithBLOBs goddessAuditDOWithBLOBs);

    // 评论审核
    BaseRsp listComments(Map<String, String> paramMap);
    BaseRsp listCommentRecords(Map<String, String> paramMap);
    BaseRsp deleteComment(CommentAuditDOWithBLOBs CommentAuditDOWithBLOBs);
    void saveCommentRecord(CommentAuditDOWithBLOBs CommentAuditDOWithBLOBs);

    // 动态评审
    BaseRsp postDetail(Map<String, String> paramMap);
    BaseRsp listPosts(Map<String, String> paramMap);
    BaseRsp listPostRecords(Map<String, String> paramMap);
    BaseRsp deletePost(PostAuditDOWithBLOBs postAuditDOWithBLOBs);
    void savePostRecord(PostAuditDOWithBLOBs postAuditDOWithBLOBs);
    void saveCheckFamily(CheckFamilyDO checkFamilyDO);
    BaseRsp getFamilyList(Map<String, Object> paramMap);
}
